软考真题
第10题
阅读下列说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。

【说明 】

以下C++代码实现一个超市简单销售系统中的部分功能,顾客选择图书等物品(Item)加入购物车(ShoppingCart),到收银台(Cashier)对每个购物车中的物品统计其价格进行结账,设计如图6-1所示类图。



图6-1 类图

【问题:6.1】 【C++代码】

using namespace std;
class Book;
class Visitor {
	public:
	virtual void visit(Book* book)=0;
	//其它物品的visit方法
}
;
class Item {
	public:virtual void accept(Visitor* visitor)=0;
	virtual double getPrice()=0;
}
;
class Book (1) {
	private: double price;
	public:
	Book (double price) {
		//访问本元素
		(2);
	}
	void accept(Visitor* visitor) {
		(3);
	}
	double getPrice() {
		return price;
	}
}
;
class Cashier(4) {
	private;
	double totalForCart;
	public:
	//访问Book类型对象的价格并累加
	(5) {
		//假设Book类型的物品价格超过10元打8折
		if(book->getPrice()<10.0) {
			totalForCart+=book->getPrice();
		} else
		totalForCart+=book->getPrice()*0.8;
	}
	//其它visit方法和折扣策略类似,此处略
	double getTotal() {
		return totalForCart;
	}
}
;
class ShoppingCart {
	private:
	vectoritems;
	public:
	double calculatePrice() {
		Cashier* visitor=new Cashier();
		for (int i=0;i ();i++)
		(6);
	}
	double total=visitor->getTotal();
	return total;
}
void add(Item*e) {
	items.push_back(e);
}
}
;

第10章C 程序设计
正确答案:
你的答案:
请先在App中激活(应用市场搜“软考真题”)
知识点:
试卷:
2017年 下半年 下午试卷 案例

笔记

Tekken

请先在App中激活(应用市场搜“软考真题”)

2023-03-22


答题卡
加油
纠错
得分:0